}
if (type === GdmUtil.MessageType.ERROR &&
- this._userVerifier.serviceIsFingerprint(serviceName))
- Util.wiggle(this._message);
+ this._userVerifier.serviceIsFingerprint(serviceName)) {
+ // TODO: Use Await for wiggle to be over before unfreezing the user verifier queue
+ const wiggleParameters = {
+ duration: 65,
+ wiggleCount: 3,
+ };
+ this._userVerifier.increaseCurrentMessageTimeout(
+ wiggleParameters.duration * (wiggleParameters.wiggleCount + 2));
+ Util.wiggle(this._message, wiggleParameters);
+ }
}
updateSensitivity(sensitive) {
this.emit('no-more-messages');
}
+ increaseCurrentMessageTimeout(interval) {
+ if (!this._messageQueueTimeoutId && interval > 0)
+ this._currentMessageExtraInterval = interval;
+ }
+
_queueMessageTimeout() {
if (this._messageQueue.length == 0) {
this.finishMessageQueue();
let message = this._messageQueue.shift();
+ delete this._currentMessageExtraInterval;
this.emit('show-message', message.serviceName, message.text, message.type);
this._messageQueueTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
- message.interval,
+ message.interval + (this._currentMessageExtraInterval | 0),
() => {
this._messageQueueTimeoutId = 0;
this._queueMessageTimeout();